<?php 
class BrandModel extends Model{
	public $table='brand';
	//执行create()函数是自动验证品牌名称
	public $validate=array(
		array('brand_name','nonull','品牌名称不能为空',2,3),
		array('brand_name','checkBrandName','品牌名称已经存在',2,3)
	);

	public function checkBrandName($name,$value,$msg,$arg){
		$data=M('brand')->where("brand_name='$value'")->find();
		if($bid=Q('brand_id')){//品牌编辑
			return empty($data) || $data['brand_id']==$bid?true:$msg;
		}else{//品牌添加
			return $data?$msg:true;
		}
	}

	//图片上传的自动处理
	public $auto=array(
		array('brand_logo','uploadLogo','method',2,3)
	);
	//图片上传处理的方法
	public function uploadLogo($v){
		if(empty($v))return $v;
		$v=current($v);
		return $v['path']; 
	}
	//添加品牌时先更新缓存然后提示添加成功
	public function addBrand(){
		if($this->create()){
			if($this->add()){
				$this->updateCache();
				return true;
			}else{
				$this->error='品牌添加失败';
				return false;
			}
		}		
	}
	//编辑品牌成功时先更新缓存然后提示成功
	public function editBrand(){
		if($this->create()){
			if($this->save()){
				$this->updateCache();
				return true;
			}else{
				$this->error='品牌编辑失败';
				return false;
			}
		}
	}
	//删除品牌
	public function delBrand(){
		$bid=Q('brand_id',0,'intval');
		if($this->del($bid)){
			$this->updateCache();
			return true;
		}else{
			$this->error='品牌删除失败';
			return false;
		}
	}

	//更新缓存
	public function updateCache(){
		$data=$this->all();
		$cache=array();
		foreach ($data as $d) {
			$cache[$d['brand_id']]=$d;
		}
		return S('brand',$cache);
	}
	//删除品牌LOGO是先删除本地的图片文件，然后在删除表中的记录
	public function delBrandLogo(){
		$bid=Q('brand_id',0,'intval');
		$data=M('brand')->where("brand_id=$bid")->find();
		if(is_file($data['brand_logo']))unlink($data['brand_logo']);
		$this->updateCache();
		return $this->del($bid);
	}


}

?>